对象存储OSS存储的文件(Object)信息包含Key、Data和Object Meta。Object Meta是对文件的属性描述,包括HTTP标准属性(HTTP Header)和用户自定义元数据(User Meta)两种。您可以通过设置HTTP标准属性来自定义HTTP请求的策略,例如文件(Object)缓存策略、强制下载策略等。您还可以通过设置用户自定义元数据来标识Object的用途或属性等。
注意事项
在Ruby SDK中,文件元数据用
Hash
来表示,其他key和value均为String
类型。文件元数据会附在HTTP Headers中,而HTTP协议规定请求头部不能包含复杂字符,元数据只能是简单的ASCII可见字符且不能包含换行。
所有元数据的总大小不能超过8 KB。
设置文件元数据
以下代码用于上传文件时设置文件元数据。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 简单上传时设置文件元数据。
bucket.put_object(
'my-object-1',
:file => 'local-file',
:metas => {'year' => '2016', 'people' => 'mary'})
# 追加上传时设置文件元数据。
bucket.append_object(
'my-object-2', 0,
:file => 'local-file',
:metas => {'year' => '2016', 'people' => 'mary'})
# 断点续传上传时设置文件元数据。
bucket.resumable_upload(
'my-object',
'local-file',
:metas => {'year' => '2016', 'people' => 'mary'})
修改文件元数据
以下代码用于修改文件元数据。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 修改文件元数据。
bucket.update_object_metas('my-object', {'year' => '2017'})
相关文档
关于在简单上传过程中设置文件元数据的API接口说明,请参见PutObject。
关于在拷贝文件过程中修改文件元数据的API接口说明,请参见CopyObject。
文档内容是否对您有帮助?